Il dialogo della programmazione
Pensa alla differenza tra un semplice "Ciao mondo!" e un gioco del indovina il numero come la differenza tra un monologo e un dialogo. In un monologo, il programma parla e termina. In un dialogo, il programma pone una domanda, apre un ricevitore e mette in pausa il suo orologio interno fino a quando l'utente risponde.
1. Il preludio e lo spazio
Rust importa automaticamente un piccolo insieme di elementi chiamati preludio in ogni programma. Tuttavia, per compiti specializzati come l'input della riga di comando, dobbiamo esplicitamente portare libreria standard nello spazio utilizzando use std::io;. Questo colma il divario tra la logica interna del tuo programma e l'ambiente esterno.
2. Macro vs Funzioni
Noterai che println! termina con un punto esclamativo. Ciò lo identifica come un macro. A differenza delle funzioni regolari, i macro possono gestire un numero variabile di argomenti e eseguire l'interpolazione di stringhe (riempimento con {indovino}) al momento della compilazione.
3. Il ciclo di vita interattivo
Quando esegui cargo run, il programma si inizializza, raggiunge io::stdin().read_line(), e sospende. Aspetta che l'utente prema 'Invio', quindi incapsula quell'input in un tipo Result per gestire in modo sicuro eventuali errori hardware.